Step of Proof: append_overlapping_sublists 11,40

Inference at * 1 
Iof proof for Lemma append overlapping sublists:



1. T : Type
2. L1 : T List
3. L2 : T List
4. L : T List
5. x : T
6. ij:. (i < ||L||)  (j < ||L||)  ((i = j))  ((L[i] = L[j]))
7. f1 : {0..||L1 @ [x]||}{0..||L||}
8. increasing(f1;||L1 @ [x]||)
9. j:{0..||L1 @ [x]||}. (L1 @ [x])[j] = L[(f1(j))]
10. f : {0..(||L2||+1)}{0..||L||}
11. increasing(f;||L2||+1)
12. j:{0..(||L2||+1)}. [x / L2][j] = L[(f(j))]
  f:{0..||L1 @ [x / L2]||}{0..||L||}
  (increasing(f;||L1 @ [x / L2]||)
  & (j:{0..||L1 @ [x / L2]||}. (L1 @ [x / L2])[j] = L[(f(j))])) 
latex

 by Assert ||L1 @ [x / L2]|| = ||L1||+||L2||+1 
latex


latex1: .....assertion..... NILNIL

latex1:   ||L1 @ [x / L2]|| = ||L1||+||L2||+1
latex2

latex2: 13. ||L1 @ [x / L2]|| = ||L1||+||L2||+1
latex2:   f:{0..||L1 @ [x / L2]||}{0..||L||}
latex2:   (increasing(f;||L1 @ [x / L2]||)
latex2:   & (j:{0..||L1 @ [x / L2]||}. (L1 @ [x / L2])[j] = L[(f(j))]))
latex.


Definitionss = t, , as @ bs, [car / cdr], n+m, ||as||, #$n